package cn.com.allunion.sms.service.mybatis;

import cn.com.allunion.common.page.QueryResult;
import cn.com.allunion.sms.pojo.Smsbusiness;

import java.util.List;

/**
 * 平台业务业务逻辑接口
 * Created by YangJie on 2016/4/15.
 */
public interface SmsbusinessService {
    /**
     * 添加一个新业务
     *
     * @param smsBusinessName 业务名称
     * @param smsBusinessDesc 业务描述
     * @param businessCode 业务代码
     * @param businessState 业务状态
     * @param businessJoinNum 业务接入号
     * @param businessSignature 业务签名
     * @return 方法执行结果
     */
    public String addNewBusiness(String smsBusinessName,
                                 String smsBusinessDesc, String businessCode, String businessState,
                                 String businessJoinNum, String businessSignature) ;

    /**
     * 存储指定业务
     *
     * @param sms 短信业务实例
     */
    public void saveOrUpdate(Smsbusiness sms) ;

    /**
     * 修改业务
     *
     * @param id 业务ID
     * @param smsBusinessName 业务名称
     * @param smsBusinessDesc 业务描述
     * @param businessCode 业务代码
     * @param businessState 业务状态
     * @param businessJoinNum 业务接入号
     * @param businessSignature 业务签名
     * @return 方法执行结果
     */
    public String updateBusiness(String id, String smsBusinessName,
                                 String smsBusinessDesc, String businessCode, String businessState,
                                 String businessJoinNum, String businessSignature) ;

    /**
     * 根据id查找业务信息
     *
     * @param id
     * @return 短信业务
     */
    public Smsbusiness findbyId(String id) ;

    /**
     * 查询所有的业务列表
     *
     * @return 业务列表
     */
    public List<Smsbusiness> findAllSmsBusiness() ;

    /**
     * 查询所有的业务列表--page
     *
     * @param pageCurrent 当前页号
     * @param pageSize 页容量
     * @return 所有的业务列表分页显示
     */
    public QueryResult<Smsbusiness> findAllSmsbusiness(int pageCurrent, int pageSize) ;

    /**
     * 查询某个管理员未配置的业务列表
     *
     * @param userId 用户ID
     * @return 业务列表
     */
    public List<Smsbusiness> findAllSmsbusiness(String userId) ;

    /**
     * 查询一个管理员的配置列表
     *
     * @param userId 用户ID
     * @return 业务列表
     */
    public List<Smsbusiness> findSmsbusinessbyUserId(String userId) ;

    /**
     * 根据id查找返回状态
     *
     * @param userId 用户id
     * @return 返回状态
     */
    public int findState(String userId) ;

    /**
     * 通过业务代码查找业务
     *
     * @param code
     *            业务代码
     * @return 业务
     */
    public List<Smsbusiness> findbyCode(String code) ;

    /**
     * 根据businessCode 查找 ，返回对象
     *
     * @param businessCode 业务代码
     * @return 业务
     */
    public Smsbusiness findBussinessObj(String businessCode) ;
}
